﻿#pragma once

#include "../MonsterObject.h"
#include "../../MirDatabase/MonsterInfo.h"
#include <vector>
#include <cmath>
#include <any>

using namespace Server::MirDatabase;
using namespace Server::MirEnvir;
namespace S = ServerPackets;

namespace Server::MirObjects::Monsters
{
    class DemonWolf : public MonsterObject
    {
    private:
        const int _MaxPackSize = 5;

    public:
        std::vector<MonsterObject*> Pack = std::vector<MonsterObject*>();

    protected:
        DemonWolf(MonsterInfo *info);

        bool InAttackRange() override;

        void ProcessSearch() override;

        void Attack() override;

        void CompleteAttack(std::vector<std::any> &data) override;

    public:
        std::vector<MonsterObject*> FindPackNearby(int distance);
    };
}
